package homework.day01;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

/**
 * 列出当前目录中所有名字包含s的子项。
 * <p>
 * 使用匿名内部类和lambda两种写法
 * <p>
 * 单词记一记:
 * FileFilter   文件过滤器
 * accept       接受
 *
 * @author Xiloer
 */
public class Test02 {
    public static void main(String[] args) throws IOException {
        //创建文件目录对象，用来被使用【在这里标注该句代码意义】
        File dir = new File(".");
        //判断是否在当前目录【在这里标注该句代码意义】
        if (dir.isDirectory()) {
        //创建一个过滤器用来过滤想要的文件夹名称【在这里标注该句代码意义】
        File[] subs = dir.listFiles(new FileFilter() {
            public boolean accept(File file) {
                //允许返回的是文件名中包含字符s的文件夹【在这里标注该句代码意义】
                return file.getName().contains("s");
            }
        });
        //设置一个遍历输出符合条件目录名称的循环【在这里标注该句代码意义】
        for (int i = 0; i < subs.length; i++) {
            //遍历输出所有符合过滤条件的文件夹名【在这里标注该句代码意义】
            System.out.println(subs[i].getName());
        }
    }
    }
}
/*
	提示代码:
	需要用到的语句，尝试按照正确顺序将下列代码并放在main方法中完成需求，
	并在注释中标注每句话的作用，
	//【在这里标注该句代码意义】
	File dir = new File(".");

	//【在这里标注该句代码意义】
	File[] suns = dir.listFiles(new FileFilter() {
		public boolean accept(File file) {

		}
	});

	//【在这里标注该句代码意义】
	if(dir.isDirectory()){

	}

	//【在这里标注该句代码意义】
	System.out.println(subs[i].getName());

	//【在这里标注该句代码意义】
	return file.getName().contains("s");

	//【在这里标注该句代码意义】
	for(int i=0;i<subs.length;i++){

	}



 */